#include <sys/mman.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <linux/fb.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <sys/ioctl.h>
#include <stdlib.h>

#include <display_manager.h>
#include <font_manager.h>
#include <input_manager.h>
#include <page_manager.h>



int main(int argc, char **argv)
{
	int error;
	if(argc != 2)
	{
		printf("User : %s <font_file> \n",argv[0]);
		return -1;
	}
	/* 初始化显示系统 */
	DisplayInit();
	SelectDefaultDisplay("frambuffer");
	printf("%s %s %d" , __FILE__ , __FUNCTION__ , __LINE__);
	InitDefaultDisplay();	
	printf("%s %s %d" , __FILE__ , __FUNCTION__ , __LINE__);
	
	/* 初始化输入系统 */
	InputDev_Register();
	InputDevice_Init();
	printf("%s %s %d" , __FILE__ , __FUNCTION__ , __LINE__);
	
	/* 初始化文字系统 */
	Fonts_Init();
	error = Fonts_Select("freetype",argv[1]);
	if (error)
	{
		printf("SelectAndInitFont err\n");
		return -1;
	}

	
	/* 初始化页面系统 */
	PagesRegister();
	printf("%s %s %d" , __FILE__ , __FUNCTION__ , __LINE__);
	/* 最后是业务程序在跑 */
	Select_Page("main")->Run(NULL);
	return 0;	
}



